Hier führen wir einen ARP-Scan durch, um aktive Hosts im Netzwerk zu entdecken. Das Ergebnis zeigt, dass die IP-Adresse 192.168.2.110 der MAC-Adresse 08:00:27:a0:9c:22 zugeordnet ist, was auf ein Gerät von PCS Systemtechnik GmbH hinweist.
Die Datei /etc/hosts
zeigt, dass die IP-Adresse 192.168.2.110 dem Hostnamen "bizarMrRobot.vln" zugeordnet ist. Zusätzlich wird die IPv6-Adresse des Systems angezeigt.
Wir führen einen Nmap-Scan durch, um offene Ports und Dienste zu identifizieren. Die Ausgabe zeigt, dass die Ports 22 (SSH), 53 (DNS), 80 (HTTP) und 5355 (LLMNR) offen sind.
Die MAC-Adresse deutet erneut auf eine virtuelle Maschine von racle VirtualBox hin.
Dieser Nmap-Scan liefert detailliertere Informationen zu den offenen Ports. Wir erfahren, dass es sich um einen SSH-Server (penSSH 7.4p1), einen DNS-Server (ISC BIND 9.10.3-P4) und einen Webserver (Apache httpd 2.4.29) handelt.
Dieser umfassende Nmap-Scan liefert noch mehr Details, einschließlich SSH-Hostkeys, der BIND-Version, des HTTP-Titels ("Eskwela Template") und des Betriebssystems (Linux 4.10).
Wir verwenden curl
, um die HTTP-Header der Webseite abzurufen. Die Ausgabe zeigt den Server (Apache/2.4.29), die Content-Type (text/html) und andere Header-Informationen.
nslookup
wird verwendet, um den Hostnamen zur IP-Adresse aufzulösen. Das Ergebnis zeigt, dass die IP-Adresse 192.168.2.110 dem Hostnamen "mrr3b0t" zugeordnet ist.
dig
wird verwendet, um DNS-Informationen abzufragen. Die Ausgabe zeigt, dass die Anfrage nach "arfx" fehlschlägt (NXDOMAIN) und es Kommunikationsprobleme mit dem DNS-Server gibt.
gobuster
wird verwendet, um versteckte Verzeichnisse und Dateien auf dem Webserver zu finden. Die Ausgabe zeigt, dass die Verzeichnisse /images
, /css
, /js
, /vendor
, /fonts
und /administrator
gefunden wurden.
Besonders interessant ist das Verzeichnis /administrator
, das auf eine Admin-Oberfläche hindeuten könnte.
Der Befehl host
bestätigt erneut, dass die IP-Adresse 192.168.2.110 dem Hostnamen "mrr3b0t" zugeordnet ist.
nikto
identifiziert verschiedene potenzielle Schwachstellen, darunter fehlende Header für Clickjacking und Content-Type-ptinen, Directory Indexing und die mögliche Offenlegung von Inodes über ETags.
Besonders interessant sind der gefundene Admin-Login-Bereich unter /administrator/index.php
und die Directory-Indexing-Schwachstelle unter /css/
und /images/
.
Mit nc
verbinden wir uns zum Port 5355. Die Ausgabe zeigt, dass der Port offen ist und wir Befehle wie "id", "help" und "ls" senden können. Dies deutet auf einen Dienst hin, der möglicherweise anfällig für Command Injection ist.
Nachdem wir die Reconnaissance abgeschlossen haben, versuchen wir, uns Zugriff auf das System zu verschaffen. Wir konzentrieren uns auf die identifizierten Schwachstellen, wie z.B. die Admin-Oberfläche und den potenziellen Command-Injection-Punkt.
Der Quellcode der Admin-Seite enthält einen Hinweis, dass eine verantwortliche Person versteckt ist und wir jeden Ort durchsuchen sollen.
Auf der Webseite finden wir eine Liste von Studenten und Professoren. Der Hinweis "Noah Henderson -> rganisator" könnte ein Tippfehler sein und "Organisator" bedeuten.
Ein fehlgeschlagener Login-Versuch mit dem Benutzernamen "admin" und dem Passwort "Noah" wird protokolliert. Dies deutet darauf hin, dass wir die Admin-Seite gefunden haben und ein Brute-Force-Angriff oder das Ausprobieren von Standardpasswörtern in Erwägung ziehen sollten.
Der Pfad /vendor/countdowntime/
könnte auf eine verwendete Bibliothek oder ein Framework hinweisen. Dies könnte uns helfen, bekannte Schwachstellen in dieser Bibliothek zu finden.
Diese Informationen geben uns einen Überblick über die verwendeten Technologien auf dem Webserver, wie z.B. Apache, Ubuntu, jQuery und Bootstrap. Dies hilft uns, gezielter nach Schwachstellen zu suchen.
Im Verzeichnis /images/
finden wir die Datei flag.txt.txt
mit der Nachricht "Almost! Did you notice something hidden?". Dies deutet darauf hin, dass wir auf dem richtigen Weg sind, aber noch etwas übersehen.
Wir laden die Datei hidden.png
herunter, um sie genauer zu analysieren.
Die Nachricht deutet darauf hin, dass wir Steganographie verwenden sollen, um eine versteckte Nachricht in der Datei hidden.png
zu finden. Die Nachricht sagt uns, dass wir den Benutzernamen "mrrobot" verwenden und sein Passwort knacken sollen.
Wir verwenden hydra
, um das Passwort für den Benutzer "mrrobot" zu knacken. Der Angriff ist erfolgreich, und wir finden das Passwort "secret".
Nachdem wir uns als Benutzer "mrrobot" angemeldet haben (vermutlich über SSH oder eine andere Schnittstelle, die noch nicht im Bericht aufgetaucht ist), versuchen wir, unsere Privilegien zu erhöhen.
Wir finden eine Upload-Seite mit einem kryptischen Dateinamen. Dies deutet darauf hin, dass wir hier Dateien hochladen können.
Wir verwenden Burpsuite, um eine POST-Anfrage zu erstellen, die eine PHP-Datei (rev.php) mit dem Inhalt hochlädt. Dies ist eine einfache Web Shell, die es uns ermöglicht, beliebige Befehle auf dem Server auszuführen.
Die Antwort zeigt, dass der Upload fehlgeschlagen ist, da nur Bildformate erlaubt sind.
Wir versuchen es erneut, indem wir die Datei als "rev.php.jpg" umbenennen und einen GIF-Header hinzufügen, um die Dateitypüberprüfung zu umgehen.
Der Upload ist erfolgreich!
Wir testen die Web Shell, indem wir den Befehl "id" ausführen. Die Ausgabe zeigt, dass der Code als Benutzer "www-data" ausgeführt wird.
Wir starten einen Netcat-Listener auf Port 9001 und verwenden die Web Shell, um eine Reverse Shell zu starten. Wir erhalten eine Shell als Benutzer "www-data".
Wir suchen nach SUID-Binaries, die von Root ausführbar sind. Dies sind potenzielle Kandidaten für eine Privilegieneskalation.
Wir laden PwnKit herunter und führen es aus, um die Privilegien zu erhöhen. Der Befehl "id" bestätigt, dass wir Root-Rechte erhalten haben!
Dieser Proof of Concept demonstriert, wie wir mit Hilfe von PwnKit Root-Zugriff auf das System erlangen.
In der Reconnaissance-Phase sammeln wir Informationen über das Zielsystem. Wir beginnen mit der Identifizierung von Hosts im Netzwerk und der Analyse offener Ports und Dienste, um potenzielle Angriffsflächen zu identifizieren.
Dieser Schritt ist entscheidend, um ein umfassendes Bild der Systemarchitektur und der laufenden Anwendungen zu erhalten, was die Grundlage für spätere Schritte bildet.